package com.ruoyi.teaching.domain.vo;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

/**
 *  * <p>
 *  *
 *  * </p>
 *  *
 *  * @author 王旭
 *  * @since 2024-06-29
 *  
 */
@Data
//@TableName("platform_u_virtual")
@ApiModel(value = "PlatformUVirtual对象", description = "")
public class PlatformUVirtualVO implements Serializable {
    private static final long serialVersionUID = 1L;


    @ApiModelProperty(value = "虚拟仿真资源id")
//    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    @ApiModelProperty(value = "资源名称")
    @NotBlank(message = "资源名称不能为空")
    private String virtualName;

    @ApiModelProperty(value = "资源类型（0PC,1VR,2MR,3AR）")
    @NotNull(message = "资源类型不能为空")
    private Integer[] virtualType;

    @ApiModelProperty(value = "所属专业类")
    @NotNull(message = "所属专业不能为空")
    private Integer professionalCategoryId;

    @ApiModelProperty(value = "所属专业类名称")
    private String professionalCategoryName;

    @ApiModelProperty(value = "专业分类")
    @NotNull(message = "专业分类不能为空")
    private Integer[] professionalId;

    @ApiModelProperty(value = "专业分类名称")
    private List<String> professionalName;

    @ApiModelProperty(value = "软件标签（1赛事2云端3精品）")
    private Long[] softwareTag;

    @ApiModelProperty(value = "资源简介")
    private String virtualExplain;

    @ApiModelProperty(value = "操作手册地址")
    private String operationManual;

    @ApiModelProperty(value = "题库地址")
    private String questionUrl;

    @ApiModelProperty(value = "题目数据")
    private List<PlatformQQuestionVO> platformQQuestionDTOs;

    @ApiModelProperty(value = "封面图")
    @NotBlank(message = "请上传封面图")
    private String resourceImage;

    @ApiModelProperty(value = "视频地址")
    @NotBlank(message = "请上传视频")
    private String videoUrl;

    @ApiModelProperty(value = "本地还是外部（0本地，1外部）")
    @NotNull(message = "请选择上传方式")
    private Integer virtualSource;

    @ApiModelProperty(value = "虚拟仿真地址")
    @NotBlank(message = "请上传虚拟仿真文件")
    private String virtualUrl;

    @ApiModelProperty(value = "学习数量")
    private Integer learnNumber;

    @ApiModelProperty(value = "学习平均时长")
    private String studyTime;

    @ApiModelProperty(value = "浏览量")
    private Integer lookNum;

    @ApiModelProperty(value = "上传人学校")
    private String uploadPersonSchool;

    @ApiModelProperty(value = "审核状态（0未审核，1已通过，2未通过）")
    private Integer vettingStatus;

    @ApiModelProperty(value = "未通过类型（0内容质量低1涉嫌抄袭2版权问题3其它）")
    private Integer notPassingType;

    @ApiModelProperty(value = "未通过原因")
    private String notPassingReason;

    @ApiModelProperty(value = "平均评分")
    private Double grade;

    @ApiModelProperty(value = "是否被收藏（0未收藏，1已收藏）")
    private Integer collect;

    @ApiModelProperty(value = "软件编码")
    private String virtualCode;

    @ApiModelProperty(value = "创建者id")
    private Integer createId;

    @ApiModelProperty(value = "创建者")
    private String createBy;

    @ApiModelProperty(value = "创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createTime;

    @ApiModelProperty(value = "更新者id")
    private Integer updateId;

    @ApiModelProperty(value = "更新者")
    private String updateBy;

    @ApiModelProperty(value = "更新时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date updateTime;

    @ApiModelProperty(value = "备注")
    private String remark;


}
